#include "widget.h"
#include "ui_widget.h"
#include <QTimer>
#include <QDebug>
#include <thread>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 设置初始值： 10
    ui->lcdNumber->display(10); //也可以在 Qt Designer 里设置
    // 创建一个 QTimer 实例
    timer = new QTimer(this);
    // 把 QTimer 的 timer 信号和槽函数连接起来
    connect(timer, &QTimer::timeout, this, &Widget::handle);
    // 启动QTimer，规定每隔 1000ms 触发一次 timeout 信号
    timer->start(1000);

//     //操作一
//    int value = ui->lcdNumber->intValue();
//    while(true)
//    {
//        // 先休眠1s
//        std::this_thread::sleep_for(std::chrono::seconds(1));
//        if(value <= 0) break;
//        value -= 1;
//        ui->lcdNumber->display(value);
//    }

//    // 操作二
//    std::thread t([this](){
//       int value = this->ui->lcdNumber->intValue();
//       while(true)
//       {
//           std::this_thread::sleep_for(std::chrono::seconds(1));
//           if(value <= 0) return ;
//           this->ui->lcdNumber->display(value - 1);
//       }
//    });

}

void Widget::handle()
{
    // 先拿到 LCDNumber 中的数字
    int value = ui->lcdNumber->intValue();
    if(value <= 0){
        // 数字减到0，停止计时器
        timer->stop();
        return;
    }
    ui->lcdNumber->display(value - 1);
}


Widget::~Widget()
{
    delete ui;
}

